package pl.com.sjap.agenci;

import CLIPSJNI.Environment;
import CLIPSJNI.MultifieldValue;

//(deftemplate rower
//		(slot rodzaj)
//		(slot ilosc_blotnikow(type INTEGER))
//		(slot swiatla)
//		(slot stan_techniczny (allowed-values dobry przecietny beznadziejny) (default przecietny))
//		(slot zapasowa_dentka (allowed-values tak nie) (default nie))
//		(slot latwy_w_naprawie (allowed-values tak nie) (default tak))
//	)
//
//	(deftemplate akcja_rowerzysty
//		(slot typ_akcji)
//	)
//
//	(deffacts akcje_rowerzysty
//	(akcja_rowerzysty(typ_akcji jazda))
//	(akcja_rowerzysty(typ_akcji zlapal_gume))
//	(akcja_rowerzysty(typ_akcji zmokniety_rowerzysta))
//	(akcja_rowerzysty(typ_akcji zmiana_dentki))
//	)
public class Cyclist{
	
	private String rower_rodzaj;
	private String rower_ilosc_blotnikow;
	private String rower_swiatla;
	private String rower_stan_techniczny;
	private String rower_zapsowa_dentka;
	private String rower_latwy_naprawie;
	private String akcja_rowerzysty;
	
	
	
	public Cyclist(String rower_rodzaj, String rower_ilosc_blotnikow,
			String rower_swiatla, String rower_stan_techniczny,
			String rower_zapsowa_dentka, String rower_latwy_naprawie,
			String akcja_rowerzysty) {
		super();
		this.rower_rodzaj = rower_rodzaj;
		this.rower_ilosc_blotnikow = rower_ilosc_blotnikow;
		this.rower_swiatla = rower_swiatla;
		this.rower_stan_techniczny = rower_stan_techniczny;
		this.rower_zapsowa_dentka = rower_zapsowa_dentka;
		this.rower_latwy_naprawie = rower_latwy_naprawie;
		this.akcja_rowerzysty = akcja_rowerzysty;
		
		
	}
	public String addAkcja(){
		return "(akcja_rowerzysty (typ_akcji "+this.akcja_rowerzysty+" ))";
	}
	public String changeAkcja(String akcja, Environment clipse){
		this.akcja_rowerzysty = akcja;
		clipse.assertString(addAkcja());
		return "(akcja_rowerzysty (typ_akcji "+akcja+" ))";
	}
	public String addRower(){	
		return "(rower (rodzaj "+rower_rodzaj+") (ilosc_blotnikow "+rower_ilosc_blotnikow+") (swiatla "+rower_swiatla+") (stan_techniczny "
				+ rower_stan_techniczny+") (zapasowa_dentka "+rower_zapsowa_dentka+")" +"(latwy_w_naprawie "+rower_latwy_naprawie+"))";
	}
	public String getAboutRower(Environment clipse){
		//clipse.assertString(this.addRower());
		MultifieldValue bohatercl = (MultifieldValue) clipse
				.eval("(find-all-facts ((?f rower)) TRUE)");
		try {
			this.setRower_rodzaj(bohatercl.get(0).getFactSlot("rodzaj").toString());
			this.setRower_ilosc_blotnikow(bohatercl.get(0).getFactSlot("ilosc_blotnikow").toString());
			this.setRower_latwy_naprawie(bohatercl.get(0).getFactSlot("latwy_w_naprawie").toString());
			this.setRower_stan_techniczny(bohatercl.get(0).getFactSlot("stan_techniczny").toString());
			this.setRower_swiatla(bohatercl.get(0).getFactSlot("swiatla").toString());
			this.setRower_zapsowa_dentka(bohatercl.get(0).getFactSlot("zapasowa_dentka").toString());
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "rower[(rodzaj "+rower_rodzaj+") (ilosc_blotnikow "+rower_ilosc_blotnikow+") (swiatla "+rower_swiatla+") (stan_techniczny "
				+ rower_stan_techniczny+") (zapasowa_dentka "+rower_zapsowa_dentka+")" +"(latwy_w_naprawie "+rower_latwy_naprawie+")]";
	}
	
	public String getAboutAkcja(Environment clipse){
		//clipse.assertString(this.addAkcja());
		MultifieldValue bohatercl = (MultifieldValue) clipse
				.eval("(find-all-facts ((?f akcja_rowerzysty)) TRUE)");
		try {
			this.setAkcja_rowerzysty(bohatercl.get(0).getFactSlot("typ_akcji").toString());
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "akcja_rowerzysty[(typ_akcji "+this.akcja_rowerzysty+")]";
	}
	public String getRower_rodzaj() {
		return rower_rodzaj;
	}
	public void setRower_rodzaj(String rower_rodzaj) {
		this.rower_rodzaj = rower_rodzaj;
	}
	public String getRower_ilosc_blotnikow() {
		return rower_ilosc_blotnikow;
	}
	public void setRower_ilosc_blotnikow(String rower_ilosc_blotnikow) {
		this.rower_ilosc_blotnikow = rower_ilosc_blotnikow;
	}
	public String getRower_swiatla() {
		return rower_swiatla;
	}
	public void setRower_swiatla(String rower_swiatla) {
		this.rower_swiatla = rower_swiatla;
	}
	public String getRower_stan_techniczny() {
		return rower_stan_techniczny;
	}
	public void setRower_stan_techniczny(String rower_stan_techniczny) {
		this.rower_stan_techniczny = rower_stan_techniczny;
	}
	public String getRower_zapsowa_dentka() {
		return rower_zapsowa_dentka;
	}
	public void setRower_zapsowa_dentka(String rower_zapsowa_dentka) {
		this.rower_zapsowa_dentka = rower_zapsowa_dentka;
	}
	public String getRower_latwy_naprawie() {
		return rower_latwy_naprawie;
	}
	public void setRower_latwy_naprawie(String rower_latwy_naprawie) {
		this.rower_latwy_naprawie = rower_latwy_naprawie;
	}
	public String getAkcja_rowerzysty() {
		return akcja_rowerzysty;
	}
	public void setAkcja_rowerzysty(String akcja_rowerzysty) {
		this.akcja_rowerzysty = akcja_rowerzysty;
	}
	


}


